/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package fisica;

import hibernate.Sesion;
import hibernate.objeto.Paciente;
import hibernate.objeto.PersonaDeContacto;
import java.util.Vector;
import org.hibernate.Query;

/**
 *
 * @author Gonzalo
 */
public class PersonaDeContactoFisica extends CapaFisica {

    /**
     * Retorna el vector de objetos Paciente de los cuales la persona es persona
     * de contacto según el id de la persona de la persona de contacto.
     *
     * @param idPersona El id de la persona que es PersonaDeContacto de los
     * pacientes
     * @return El vector de objetos Paciente que tienen como persona de contacto
     * a la persona consultada, null si no existe
     */
    public static Vector<Paciente>
            getVectorPacientePorIdPersonaDeLaPersonaDeContacto(int idPersona) {
        Query q = Sesion.sesion.createQuery(
                "select p.pacientes " +
                "from PersonaDeContacto p " +
                "where p.persona.idPersona = " + idPersona
                );

        return getVectorObjetos(q);
    }

    /**
     * Retorna el objeto PersonaDeContacto según el id.
     *
     * @param idPersonaDeContacto El id de la PersonaDeContacto
     * @return El objeto PersonaDeContacto consultado, null si no existe
     */
    public static PersonaDeContacto getPersonaDeContactoPorId(
            int idPersonaDeContacto) {
        Query q = Sesion.sesion.createQuery(
                "from PersonaDeContacto " +
                "where idPersonaDeContacto = " + idPersonaDeContacto
                );

        return (PersonaDeContacto) getObjeto(q);
    }

    /**
     * Retorna el objeto PersonaDeContacto según el id de la persona.
     *
     * @param idPersona El id de la persona asociada
     * @return El objeto PersonaDeContacto consultado, null si no existe
     */
    public static PersonaDeContacto getPersonaDeContactoPorIdPersona(
            int idPersona) {
        Query q = Sesion.sesion.createQuery(
                "select pdc " +
                "from PersonaDeContacto as pdc " +
                "where pdc.persona.idPersona = " + idPersona
                );
        
        return (PersonaDeContacto) getObjeto(q);
    }
    
}
